/*
 * 文件名称:          NumberFieldSerializer.java
 * 版权所有@ 2016——2017 无锡聆音科技有限公司，保留所有权利
 * 时间:             2016年7月27日 下午9:21:11
 */

package com.lingyin.json.serializer;

import com.alibaba.fastjson.serializer.FieldSerializer;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.util.FieldInfo;

/**
 *  
 * 
 * @项目        jsonlib
 * 
 * @作者:       关宏新
 * 
 * @日期:       2016年7月27日
 * 
 * @负责人:    关宏新
 * 
 * @负责小组:   聆音项目组
 * 
 */
public class NumberFieldSerializer extends FieldSerializer
{

    /**
     * 
     * @param fieldInfo
     */
    public NumberFieldSerializer(FieldInfo fieldInfo)
    {
        super(fieldInfo);
    }

    /**
     * 序列化枚举对象内容
     * @param serializer json序列化对象。
     * @param propertyValue 需要序列化的对象值
     */
    public void writeProperty(JSONSerializer serializer, Object propertyValue) throws Exception
    {
        writePrefix(serializer);
        this.writeValue(serializer, propertyValue);
    }

    /**
     * 序列化枚举对象内容
     * @param serializer json序列化对象。
     * @param propertyValue 需要序列化的对象值
     */
    public void writeValue(JSONSerializer serializer, Object propertyValue) throws Exception
    {
        SerializeWriter out = serializer.getWriter();

        Object value = propertyValue;

        if (value == null)
        {
            if (out.isEnabled(SerializerFeature.WriteNullNumberAsZero))
            {
                out.write('0');
            }
            else
            {
                out.writeNull();
            }
            return;
        }

        out.append(value.toString());
    }

}
